#pragma once
class CommDlgBrowser3 :public ICommDlgBrowser3
{
public:
	CommDlgBrowser3();
	~CommDlgBrowser3();


	// IUnknown methods  
	STDMETHOD(QueryInterface)(REFIID riid, void **ppvObject);
	STDMETHOD_(ULONG, AddRef)(void);
	STDMETHOD_(ULONG, Release)(void);
	// *** ICommDlgBrowser methods ***
	STDMETHOD(OnDefaultCommand) (THIS_ struct IShellView * ppshv);
	STDMETHOD(OnStateChange) (THIS_ struct IShellView * ppshv, ULONG uChange);
	STDMETHOD(IncludeObject) (THIS_ struct IShellView * ppshv, LPCITEMIDLIST pidl);
	// *** ICommDlgBrowser2 methods ***
	STDMETHOD(Notify)(
		/* [in] */ __RPC__in_opt IShellView *ppshv,
		/* [in] */ DWORD dwNotifyType);

	STDMETHOD(GetDefaultMenuText)(
		/* [in] */ __RPC__in_opt IShellView *ppshv,
		/* [size_is][string][out] */ __RPC__out_ecount_full_string(cchMax) LPWSTR pszText,
		/* [in] */ int cchMax);

	STDMETHOD(GetViewFlags)(
		/* [out] */ __RPC__out DWORD *pdwFlags);
	// *** ICommDlgBrowser3 methods ***
	STDMETHOD(OnColumnClicked)(__RPC__in_opt IShellView *ppshv, int iColumn);
	STDMETHOD(GetCurrentFilter)(__RPC__out_ecount_full_string(cchFileSpec) LPWSTR pszFileSpec, int cchFileSpec);
	STDMETHOD(OnPreViewCreated)(__RPC__in_opt IShellView *ppshv);
};

